/*
* Copyright 2017 Yonyou Auto Information Technology（Shanghai） Co., Ltd. All Rights Reserved.
*
* This software is published under the terms of the YONYOU Software
* License version 1.0, a copy of which has been included with this
* distribution in the LICENSE.txt file.
*
* @Project Name : marketing-app-api
*
* @File name : MaintainServiceInterface.java
*
* @Author : Administrator
*
* @Date : 2017年11月14日
*
----------------------------------------------------------------------------------
*     Date       Who       Version     Comments
* 1. 2017年11月14日    Administrator    1.0
*
*
*
*
----------------------------------------------------------------------------------
*/

package com.yonyou.marketing.app.api.service;

import java.util.List;
import java.util.Map;

import javax.validation.Valid;

import org.marketing.common.dto.maintain.MaintainDealerDto;
import org.marketing.common.dto.maintain.MaintainDto;
import org.marketing.common.dto.maintain.MaintainFrecordDto;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

/**
 *
 * @author Administrator
 * @date 2017年11月14日
 */

@FeignClient(name = "SERVICE-MAINTAIN")
public interface MaintainServiceInterface {

	/**
	 * 获取省/市列表
	 * 
	 * @author Administrator
	 * @date 2017年11月16日
	 * @return
	 */
	@RequestMapping(value = "/maintain/api/v1/maintainDealerMap", method = RequestMethod.GET)
	public List<MaintainDealerDto> getCity(@RequestParam("regionType") String regionType);

	/**
	 * 按关键字查询销售店
	 * 
	 * @author Administrator
	 * @date 2017年11月20日
	 * @return
	 */
	@RequestMapping(value = "/maintain/api/v1/searchDealer", method = RequestMethod.GET)
	public List<MaintainDealerDto> getSearchDealer(@RequestParam("dealerName") String dealerName);

	/**
	 * 查询某城市下的销售店
	 * 
	 * @author Administrator
	 * @date 2017年11月20日
	 * @return
	 */
	@RequestMapping(value = "/maintain/api/v1/maintainDealers", method = RequestMethod.GET)
	public List<MaintainDealerDto> maintainDealers(@RequestParam("regionName") String regionName,
			@RequestParam("dealerCode") String dealerCode);

	/**
	 * 获取养修预约车辆信息
	 * 
	 * @author Administrator
	 * @date 2017年11月17日
	 * @return
	 */
	@RequestMapping(value = "/maintain/api/v1/maintainSel", method = RequestMethod.GET)
	public List<MaintainDto> getMaintainSel(@RequestParam("userId_") String userId_);

	/**
	 * 获取工位空闲时间
	 * 
	 * @author Administrator
	 * @date 2017年11月20日
	 * @return
	 */
	@RequestMapping(value = "/maintain/api/v1/simple", method = RequestMethod.GET)
	public List<String> getMrFreeTime(@RequestParam("dealerCode") String dealerCode);

	/**
	 * 保存预约信息
	 * 
	 * @author Administrator
	 * @date 2017年11月21日
	 * @return
	 */
	@RequestMapping(value = "/maintain/api/v1/saveMaintain", method = RequestMethod.POST)
	public Map<String, Object> saveMaintain(@RequestBody MaintainDto maintainDto);

	/**
	 * 养修预约列表查询
	 * 
	 * @author Administrator
	 * @date 2017年11月22日
	 * @return
	 */
	@RequestMapping(value = "/maintain/api/v1/repairs", method = RequestMethod.GET)
	public List<MaintainDto> getMaintainData(@RequestParam("userId_") String userId_);

	/**
	 * 查询预约详情
	 * 
	 * @author Administrator
	 * @date 2017年11月23日
	 * @return
	 */
	@RequestMapping(value = "/maintain/api/v1/repairs/info", method = RequestMethod.GET)
	public List<MaintainDto> getMaintainDataById(@RequestParam("resnId") String resnId);

	/**
	 * 取消订单
	 * 
	 * @author Administrator
	 * @date 2017年11月23日
	 * @return
	 */
	@RequestMapping(value = "/maintain/api/v1/updateMaintainStatus", method = RequestMethod.POST)
	public Map<String, Object> cancelAppoint(@RequestBody @Valid MaintainFrecordDto maintainFrecordDto);
}
